--- id: TASK-024 title: 'TUI: Weather alert banner at top of Personal page' status: To Do assignee: [] created_date: '2026-06-12 04:21' labels: - tui - feature dependencies: [] priority: medium ordinal: 24000 --- ## Description When the weather payload has active `alerts[]` or AQI > 100, show a persistent single-line banner at the top of the Personal page (above the first row of panels). Banner format: `⚠ Freeze Warning · until 9:00 AM · AQI 142 Unhealthy` Behavior: - Only shown when at least one condition is active - Styled bold red (alert) or dark orange (AQI only) - Dismissible with `x` until the next data refresh re-evaluates - Survives panel refreshes — only clears when the underlying alert is gone - Multiple alerts: show the first + "and N more" Implementation: - Add a `Static` widget above the `ContentSwitcher`, initially `display: none` - In `refresh_data()`, check weather payload for alerts and AQI; show/hide and update the widget accordingly - Track dismissed state in a set of alert event names; compare against current alerts on refresh ## Acceptance Criteria - [ ] #1 Banner appears when alerts[] is non-empty or AQI > 100 - [ ] #2 Banner is hidden when no alert conditions are active - [ ] #3 x dismisses the banner until next data refresh - [ ] #4 Multiple alerts show count - [ ] #5 Banner does not appear on News or System pages